System and method for decision-making based on source addresses

ABSTRACT

An automation system that does not require any of the source node devices transmitting packets of information to have knowledge of the recipients of those packets. The automation system comprises sensor nodes and actor nodes. The sensor nodes transmit information via a wireless network based on conditions that are sensed by the sensors, such as a button being pushed, motion being detected, or the current ambient light level. The actor nodes detect the information that is transmitted over the wireless network and control their device functions, such as lighting and climate control, based on the information detected. In particular, the actor nodes monitor the network for packets that contain information that is relevant to each node, such as one or more sensor node source addresses previously configured to be of interest to each actor node and which are used in the decision-making that is performed by each actor node.

CROSS REFERENCE TO RELATED APPLICATIONS

The following document is incorporated by reference herein: U.S.Provisional Application Ser. No. 62/120,787, filed Feb. 25, 2015. Ifthere are any contradictions or inconsistencies in language between thisapplication and any document that has been incorporated by referencethat might affect the interpretation of the claims in this application,the claims in this application should be interpreted to be consistentwith the language in this application.

FIELD OF THE INVENTION

The present invention relates to building automation and control ingeneral, and, more particularly, to an automation system withdecision-making based on source addresses.

BACKGROUND OF THE INVENTION

“Commercial building automation,” or “commercial automation,” refers tothe use of computer and information technology to control commercialbuilding systems, such as lighting, HVAC, audio-visual, smoke detection,security, and shading, among others. Using specialized hardware,building devices can be monitored and controlled automatically. Althoughcommercial automation has been available at some level of sophisticationfor some time, it steadily becomes more practical, both from atechnological and cost perspective. This is due in part to the rapidadvancement of information technology.

A sophisticated commercial automation system might include sensors(e.g., of temperature, of light, of motion, etc.), controllers (e.g., ageneral-purpose personal computer, a dedicated automation controller,etc.), and actuators (e.g., motorized valves, switches, etc.). Thesystem might also include a human-machine interface device that enablesan occupant of the building to interact with the system. The interfacecan be a specialized terminal or an application (“app”) running on asmartphone or tablet computer. The various system devices communicateover dedicated wiring, or over a wired network, or wirelessly, using oneor more protocols.

FIG. 1 depicts building automation system 100 in the prior art. System100 comprises: sensor nodes 101-1 through 101-G, wherein G is a positiveinteger; actor nodes 102-1 through 102-H, wherein H is a positiveinteger; and controller 110. The aforementioned elements are logicallyinterconnected as shown, and are interconnected either wirelessly or viawired connections.

Sensor nodes 101-1 through 101-G include one or more of: motion sensors,temperature sensors, light sensors, and air quality sensors. Actor nodes102-1 through 102-H are building devices that include one or more of:lamps, possibly with adjustable brightness and/or color; window blindsthat can be opened and closed; and HVAC (heating, ventilation, and airconditioning) systems. Using such sensor and actor nodes, buildingautomation system 100 is capable of triggering and acting on certainconditions as a function of sensor readings, such as turning on lightswhen motion is detected or when ambient light is low, controlling HVACsystems in response to temperature variations, and so forth. Controller110 coordinates and executes the actions to be taken by one or more ofthe actor nodes, based on i) the input signals received from one or moreof the sensor nodes and ii) one or more memorized states.

SUMMARY OF THE INVENTION

The present invention enables an automation system that does not requireany of the source node devices transmitting packets to have knowledge ofthe recipients of those packets, wherein the packets convey informationsensed by the source nodes. The disclosed automation system comprisessensor nodes and actor nodes. The sensor nodes transmit information viaa wireless network based on conditions that are sensed by the sensors,such as a button being pushed, motion being detected, or the currentambient light level. The actor nodes detect the information that istransmitted over the wireless network and control their device functionsbased on the information detected. The sensor and actor nodes arecapable of interoperating without the need for a centralized controllerto distribute the packets.

Part of what enables such a system is a software application (“app”)that is used for the initial configuring of the automation system. Thesoftware application can be executed on a mobile station, such as asmartphone. The configuring process results in the actor nodes beinginitialized with a set of data elements having certain, configuredvalues. The data elements include one or more source addresses thatcorrespond to sensor nodes that are relevant to a particular actor node,and a triggering event or events to look out for, such as “motion isbeing sensed” or “ambient light level is at 40%.” In some embodiments ofthe present invention, the data elements can also include a controlvalue (e.g., a brightness level, a temperature, etc.) to be appliedwhenever an actor node detects a data packet or combination of packetsthat are reporting the configured set of conditions from the configuredsource addresses.

After the sensor and actor nodes are configured, the sensor nodestransmit packets into the network based on conditions that are sensed intheir environments. The packets contain data values that are relevant tothe preconfigured information. The network itself is based on theBluetooth Low Energy (BLE) protocol, in some embodiments of the presentinvention. Meanwhile, the actor nodes monitor the network for packetsthat contain source addresses of interest, as determined by theconfiguring process. As a result of decision-making that is based inpart on the source address detected in each packet, the actor node canact on the packet by controlling the node's device function, such as alighting/dimming function, a heating function, or a window-blind motorcontrol function, for example and without limitation.

In some embodiments of the present invention, the actor nodes alsomonitor the network for packets that contain information of scenes thatare relevant to each node, as determined by the configuring process.Based on this information, as well as on the source addresses containedin the packets, the node acts on the information by controlling itsdevice function, such as a single-channel lighting/dimming function, amulti-channel color (RGB) lighting/dimming function, a heating function,or a window-blind motor control function, for example and withoutlimitation.

None of the sensor nodes (or actor nodes, for that matter) needs to knowwho the recipients are of the data packets that are being transmitted(e.g., broadcast, etc.). Accordingly, the packets themselves do notnecessarily contain the address or addresses of the recipient orrecipients, at least in some embodiments. In short, instead of beingdriven by addressing each individual actor node, the automation systemdisclosed herein is driven by i) source addresses identified in thepackets and ii) sensor events detected by sensor nodes corresponding tothe source addresses. Advantageously, such an automation system in whichthe actor nodes make decisions based on source addresses and in whichknowledge of any recipient nodes is not required, makes the systemeasier to configure and manage, and at the same time supports thecontrol of device functions at the actor nodes, wherein the control isbased on conditional logic.

An illustrative system comprises a first actor node, the first actornode comprising: a memory configured to store a first source address, asconfiguration information for acting on the first source address whendetected in a data packet; a receiver configured to monitor a pluralityof wirelessly-transmitted data packets for the first source address,wherein the transmitted packets originate at one or more sensor nodes;and a processor configured to: a) act on a packet having the firstsource address, at least in part by generating a first signal inresponse to the first actor node detecting, in the plurality oftransmitted packets being monitored, the packet having the first sourceaddress, and b) discard a packet that is absent any source address ofthe one or more sensor nodes, in response to the first actor nodedetecting, in the plurality of transmitted packets being monitored, thepacket that is absent the source address.

An illustrative method comprises: storing into a memory, by a firstactor node, a first source address, thereby configuring the first actornode, at least in part, to act on the first source address when detectedin a data packet; monitoring, by the first actor node, a plurality ofwirelessly-transmitted data packets for the first source address,wherein the transmitted packets originate at one or more sensor nodes;if, in the plurality of transmitted packets being monitored, the firstactor node detects any packet having the first source address, acting onthe packet having the first source address, at least in part bygenerating a first signal; and if, in the plurality of transmittedpackets being monitored, the first actor node detects any packet that isabsent any source address of the one or more sensor nodes, discardingthe packet that is absent any source address.

Another illustrative system comprises a first actor node, the firstactor node comprising: a memory configured to store i) a first sourceaddress of a first sensor node and ii) a second source address of asecond sensor node, as configuration information for acting on the firstand second source addresses when detected in data packets; a receiverconfigured to monitoring a plurality of wirelessly-transmitted datapackets for the first and second source addresses, wherein thetransmitted packets originate at a plurality of sensor nodes thatcomprises the first and second sensor nodes; and a processor configuredto generate a signal in response a detection of both i) a first packethaving the first source address and ii) a second packet having thesecond source address, the signal being based on i) a first event whoseoccurrence is indicated by the first sensor node and ii) a second eventwhose occurrence is indicated by the second sensor node.

Another illustrative method comprises: storing into a memory, by a firstactor node, i) a first source address of a first sensor node and ii) asecond source address of a second sensor node, thereby configuring thefirst actor node, at least in part, to act on the first and secondsource addresses when detected in data packets; monitoring, by the firstactor node, a plurality of wirelessly-transmitted data packets for thefirst and second source addresses, wherein the transmitted packetsoriginate at a plurality of sensor nodes that comprises the first andsecond sensor nodes; and if, in the plurality of transmitted packetsbeing monitored, the first actor node detects both i) a first packethaving the first source address and ii) a second packet having thesecond source address, generating a signal based on i) a first eventwhose occurrence is indicated by the first sensor node and ii) a secondevent whose occurrence is indicated by the second sensor node.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts building automation system 100 in the prior art.

FIG. 2 depicts automation system 200, in accordance with an illustrativeembodiment of the present invention.

FIG. 3 depicts the salient components of sensor node 201-m of system200.

FIG. 4 depicts the salient components of actor node 202-n of system 200.

FIG. 5 depicts the salient components of mobile station 203 of system200.

FIG. 6 depicts an illustrative floor plan of building 600.

FIG. 7 depicts some salient operations of method 700 as performed bysensor node 601-1 within building 600, according to an illustrativeembodiment of the present invention.

FIG. 8 depicts some salient operations of method 800 as performed byactor node 602-1 within building 600, according to an illustrativeembodiment of the present invention.

FIGS. 9A and 9B depict illustrative floor plans of building 900.

FIG. 10 depicts some salient operations of method 1000 as performed bymobile station 903 within building 900, according to an illustrativeembodiment of the present invention.

FIG. 11 depicts some salient operations of method 1100 as performed bysensor node 901-3 within building 900, according to an illustrativeembodiment of the present invention.

FIG. 12 depicts some salient operations of method 1200 as performed byactor node 902-3 within building 900, according to an illustrativeembodiment of the present invention.

DETAILED DESCRIPTION

Based on—For the purposes of this specification, the phrase “based on”is defined as “being dependent on” in contrast to “being independentof”. The value of Y is dependent on the value of X when the value of Yis different for two or more values of X. The value of Y is independentof the value of X when the value of Y is the same for all values of X.Being “based on” includes both functions and relations.

Data element—For the purposes of this specification, the term “dataelement” is defined as a named unit of data.

Generate—For the purposes of this specification, the infinitive “togenerate” and its inflected forms (e.g., “generating”, “generation”,etc.) should be given the ordinary and customary meaning that the termswould have to a person of ordinary skill in the art at the time of theinvention.

Lamp—For the purposes of this specification, the term “lamp” is definedas a device for providing illumination, comprising an electric bulb andits holder. A “smart lamp” is a lamp that is capable of beingcontrolled, or of controlling itself, in order to make adjustments basedon conditions such as, while not being limited to, occupancy or daylightavailability.

Light—For the purposes of this specification, the term “light” isdefined as a source of illumination.

Network address—For the purposes of this specification, the term“network address,” or “computer network address,” is defined as anumerical label assigned to each device (e.g., sensor node, actor node,configuring node, etc.) participating in a computer network. Forexample, an Internet Protocol address (IP address) is a numerical labelassigned to each device participating in a computer network that usesthe Internet Protocol for communication. A “source address” is anexample of a network address, in that it specifies the device thatoriginated a transmitted packet or message conveyed by one or morepackets.

Packet—For the purposes of this specification, the term “packet,” or“data packet,” is defined as a unit of data made into a single packagethat travels along a given network path. The header of each packet(e.g., IP packet) contains, among other things, the numerical sourceaddress of the packet. In some embodiments of the present invention, theheader can also contain a destination address.

Processor—For the purposes of this specification, the term “processor”is defined as hardware or hardware and software that performmathematical and/or logical operations.

Receive—For the purposes of this specification, the infinitive “toreceive” and its inflected forms (e.g., “receiving”, “received”, etc.)should be given the ordinary and customary meaning that the terms wouldhave to a person of ordinary skill in the art at the time of theinvention.

Transmit—For the purposes of this specification, the infinitive “totransmit” and its inflected forms (e.g., “transmitting”, “transmitted”,etc.) should be given the ordinary and customary meaning that the termswould have to a person of ordinary skill in the art at the time of theinvention.

FIG. 2 depicts automation system 200, in accordance with an illustrativeembodiment of the present invention. System 200 comprises: sensor nodes201-1 through 203-M, wherein M is a positive integer; actor nodes 202-1through 202-N, wherein N is a positive integer; mobile station 203; andcomputer network 204. The aforementioned elements are interconnected asshown and, as depicted, are physically distinct devices with respect toone another. The elements that make up system 200 communicatewirelessly; in some alternative embodiments of the present invention,however, one or more of the depicted elements can communicate via wiredconnections.

In accordance with an illustrative embodiment of the present invention,automation system 200 is an automation and control system in acommercial building, such as an office space or a retail space. As thosewho are skilled in the art will appreciate after reading thisspecification, however, automation system 200 can also be applied to adifferent type of building, such as a home, or to include theenvironment surrounding the building, or to any environment in whichautomated control can be applied.

Sensor node 201-m, wherein m has a value between 1 and M, inclusive, isan apparatus that comprises memory, processing components, andcommunication components. Sensor node 201-m is configured to transmitsignals providing sensor-related information. Sensor node 201-m isdescribed in detail below and in FIG. 3. In some embodiments of thepresent invention, one or more of the sensor nodes can be virtualsensors, which refers web or network services that provide informationsuch as time-of-day, date, day/night indication, sun elevation/azimuth,and so on, for example and without limitation.

Actor node 202-n, wherein n has a value between 1 and N, inclusive, isan apparatus that comprises memory, processing components, andcommunication components. Actor node 202-n is configured to receivesignals conveying data packets that the node uses to controlcorresponding device functions and/or affect a condition, physical orotherwise, in the node's environment, in part by generating a signal(e.g., a control signal, etc.). In doing so, actor node 202-n is said toact on (or upon) the received data. Actor node 202-n is described indetail below and in FIG. 4.

In some embodiments, at least one of the sensor nodes and/or actor nodesis configured to both i) transmit signals that provide sensor-relatedinformation and ii) receive signals that the node uses to controlcorresponding device functions and/or affect a condition, physical orotherwise, in the node's environment. Also, in some embodiments, atleast some of the sensor nodes and/or actor nodes can distribute dataaccording to a mesh network. A “mesh network” is a network topology inwhich each node replays data for the network. The nodes that areinvolved cooperate in the distribution of data in the network. A meshnetwork can relay messages using either a flooding technique or arouting technique.

Mobile station 203 is a wireless telecommunications terminal that isconfigured to transmit and/or receive communications wirelessly. It isan apparatus that comprises memory, processing components, andcommunication components. Mobile station 203 comprises the hardware andsoftware necessary to be compliant with the protocol standards used inthe wireless network in which it operates and to perform the processesdescribed below and in the accompanying figures. Mobile station 203 isdescribed in detail below and in FIG. 5.

Furthermore, mobile station 203 is illustratively a smartphone with atleast packet data capability provided and supported by the network inwhich it operates and that is configured to execute a softwareapplication (e.g., an “app”) for controlling and/or configuring one ormore of the other devices depicted in FIG. 2. In some alternativeembodiments of the present invention, mobile station 203 can be referredto by a variety of alternative names such as a wireless transmit/receiveunit (WTRU), a user equipment (UE), a wireless terminal, cell phone, ora fixed or mobile subscriber unit, or can be any other type of device(e.g., personal computer, laptop, notebook, tablet, phablet, etc.) thatis capable of operating in a wireless network environment, eithermobility-oriented or otherwise.

Computer network 204 is a wireless personal area network (WPAN) thatprovides the elements of system 200 with connectivity to one other. Inaccordance with an illustrative embodiment of the present invention,network 204 comprises a communications medium for transmitting packetsof data in accordance with the Bluetooth Low Energy (BLE) protocol.

In some other embodiments of the present invention, computer network 204is a different type of WPAN than one that is BLE-based. For example andwithout limitation, network 204 can be based on Z-Wave, ZigBee, Thread,Wi-Fi, or classic Bluetooth. As those with ordinary skill in the artwill appreciate after reading this disclosure, in some embodiments ofthe present invention, network 204 can comprise one or more of theaforementioned networks and/or other computer or telecommunicationnetworks, without limitation. Furthermore, as those with ordinary skillin the art will appreciate after reading this disclosure, computernetwork 204 can comprise elements that are capable of wired and/orwireless communication, without limitation.

FIG. 3 depicts the salient components of sensor node 201-m according toan illustrative embodiment of the present invention. Sensor node 201-mis based on a data-processing apparatus whose hardware platformcomprises: sensor unit 301-1 through 301-J, wherein J is a positiveinteger; processor 303, memory 304, and radio communications module 305,interconnected as shown. In some alternative embodiments, there can alsobe one or more actor units present and as part of the sensor node, whichare described below and in FIG. 4.

Sensor unit 301-j, wherein j has a value between 1 and J, inclusive, isan apparatus that comprises memory, processing components, andcommunication components, and is configured to gathers information aboutthe environment that is accessible by the sensor unit. Each sensor unitgenerates an indication of an event (generates an “event”) based on astate change as a result of an external event occurring (e.g.,pushbutton pressed, motion detected, etc.) or an internal eventoccurring (e.g., a counter reaching a particular value, etc.). Forexample and without limitation, a sensor unit autonomously generatesevents based on a state change of one or more of the following, in anycombination:

-   -   i. environmental probes (e.g., temperature, ambient light,        motion or occupancy, humidity, etc.).    -   ii. electrical inputs (i.e., binary, analog, bus), including        from a switch.    -   iii. signals received via radio (e.g., proximity beacons, etc.).    -   iv. a state of the internal logic, woken up periodically based        on time or on an external event.

As those who are skilled in the art will appreciate, after reading thisdisclosure, sensor unit 301-j can generate events based on differentcriteria than those listed above.

Processor 303 is a processing device, such as a microprocessor that iswell known in the art. Processor 303 is configured such that, whenoperating in conjunction with the other components of sensor node 201-m,processor 303 executes software, processes data, and telecommunicatesaccording to the operations described herein. In particular, processor303 determines which data values, of which data elements, are to beincluded in packets to be transmitted, including a source address ofcorresponding sensor node 201-m.

In at least some embodiments of the present invention, one or more ofthe data values can be based on i) the events generated by the one ormore sensor units and ii) associations between each event and the datavalues, as described below. The data values, which can include a“composite indication” and a “command indication”, for example, aredescribed in detail below and beginning with FIG. 6. Processor 303 alsocomposes data packets that comprise the relevant data values.

Memory 304 is non-transitory and non-volatile computer storage memorytechnology that is well known in the art (e.g., flash memory, etc.).Memory 304 is configured to store operating system 311, applicationsoftware 312, and database 313. The operating system is a collection ofsoftware that manages, in well-known fashion, sensor node 201-m'shardware resources and provides common services for computer programs,such as those that constitute the application software. The applicationsoftware that is executed by processor 303 according to an illustrativeembodiment enables sensor node 201-m to perform the functions disclosedherein. Database 313 comprises information about each possible event andassociated data values.

It will be clear to those having ordinary skill in the art how to makeand use alternative embodiments that comprise more than one memory 304;or comprise subdivided segments of memory 304; or comprise a pluralityof memory technologies that collectively store the operating system,application software, and database.

Radio communications module 305 is configured to enable sensor node201-m to telecommunicate with other devices and systems, by receivingsignals therefrom and/or transmitting signals thereto via receiver 321and transmitter 322, respectively. For example, radio communicationsmodule 305 communicates with mobile station 203 and transmits datapackets that can be used by one or more of actor nodes 202-1 through202-n. Radio communications module 305 communicates via Bluetooth LowEnergy (BLE). In some other embodiments, radio communications module 305communicates via one or more other radio telecommunications protocolsother than or in addition to BLE such as, but not limited to, Z-Wave,ZigBee, Thread, Wi-Fi, classic Bluetooth, and so on.

Receiver 321 is a component that enables sensor node 201-m totelecommunicate with other components and systems by receiving signalsthat convey information therefrom. It will be clear to those havingordinary skill in the art how to make and use alternative embodimentsthat comprise more than one receiver 321.

Transmitter 322 is a component that enables sensor node 201-m totelecommunicate with other components and systems by transmittingsignals that convey information thereto. For example and withoutlimitation, transmitter 322 is configured to transmit packets comprisingthe data values mentioned earlier, including the sensor node's sourceaddress. In some alternative embodiments of the present invention,transmitter 322 also transmits one or more destination addresses. Itwill be clear to those having ordinary skill in the art how to make anduse alternative embodiments that comprise more than one transmitter 322.

In accordance with an illustrative embodiment, sensor node 201-m usesradio communications module 305 in order to telecommunicate wirelesslywith external devices. It will clear to those skilled in the art,however, after reading the present disclosure, how to make use and usevarious embodiments of the present invention in which sensor node 201-mcommunicates via a wired protocol (e.g., X10, KNX, etc.) over physicalmedia (e.g., cable, wire, etc.) with one or more external devices,either in addition to or instead of the wireless capability provided byradio communications module 305.

In generating and transmitting a packet, along with including its ownnetwork address as the source address in the packet, sensor node 201-mis said to originate the packet. In some embodiments of the presentinvention, sensor node 201-m can forward a packet that has beenoriginated by a different sensor node.

FIG. 4 depicts the salient components of actor node 202-n according toan illustrative embodiment of the present invention. Actor node 202-n isbased on a data-processing apparatus whose hardware platform comprises:actor unit 402-1 through 402-K, wherein K is a positive integer;processor 403, memory 404, and radio communications module 405,interconnected as shown. In some alternative embodiments, there can alsobe one or more sensor units present and as part of the actor node, whichare described above and in FIG. 3.

Actor unit 402-k, wherein k has a value between 1 and K, inclusive, isan apparatus that comprises memory, processing components, andcommunication components, and is capable of doing something in thecourse of being affected by signals (e.g., data packets, etc.)originating externally to the actor component, such as from one or moreof sensor nodes 201-1 through 201-M, as described in detail below. Eachactor unit 402-k takes decisions that are based on signals from one ormore sources and performs appropriate actions upon the actor'senvironment. Each actor unit acts upon its environment in well-knownfashion. In some embodiments, an actor unit is or comprises an actuator,as is known in the art.

Actor unit 402-k is configured to receive, transmit, process, and/orrelay signals conveying data, as well as being configured to affect acondition, physical or otherwise, in its environment, for example bygenerating a control signal. For example and without limitation, thecondition being affected can be:

-   -   i. lighting, which can be adjusted (e.g., turning on or off,        changing brightness, changing color or mood, displaying a        picture or pattern, etc.).    -   ii. sound, which can be adjusted (e.g., increasing or decreasing        volume, changing playlist or mood, turning on/off, selecting        signal source, etc.).    -   iii. room climate, which can be controlled (e.g., increasing or        decreasing temperature, humidity, air fragrance, fan speed,        etc.).    -   iv. an alert, which can be generated (e.g., of an email, of an        SMS message, etc.).    -   v. monitoring by a camera, which can be panned or tilted.    -   vi. office meeting/presentation settings (e.g., selecting one or        more of signal source, streaming application, multimedia to        play, audio language, subtitles, chapter, play/pause/stop,        rewind/fast forward, etc.).    -   vii. connected/smart video monitor features (e.g., selecting        application to be launched, navigating through on-screen menus,        etc.).    -   viii. virtual keyboard—navigation on virtual keyboard displayed        by other device (e.g., video monitor, set-top box, etc.).    -   ix. control of shades/window coverings/blinds.    -   x. access control (e.g., unlocking/locking doors,        opening/shutting doors, authorizing access to selected rooms or        zones, etc.).

As those who are skilled in the art will appreciate, after reading thisdisclosure, actor unit 402-k can provide a different function than thosedescribed above. Furthermore, actor node 202-n can comprise anycombination of and any number of actor functions. As those who areskilled in the art will appreciate, after reading this disclosure, actornode 202-n comprising one or more actor functions can be in a variety offorms, such as a light bulb as part of a lighting system, a media playeras part of an audio/video system, a heater and/or ceiling fan as part ofan environment control system, an outgoing-email server as part of amessaging system, an actor in a water sprinkler system, a pump, a robotor robotic arm, a pan/tilt camera, a switch, a motor, a servo mechanism,and so on.

Processor 403 is a processing device that can be similar in hardwareconfiguration to processor 303. Processor 403 determines which packetsare to be processed and how each processed packet is to be used, in partbased on the data values (e.g., source address, composite indication,command indication, etc.) contained in each packet.

Memory 404 is non-transitory and non-volatile computer storage memorytechnology that is well known in the art (e.g., flash memory, etc.) andthat can be similar in hardware configuration to memory 304. Memory 404is configured to store operating system 411, application software 412,and database 413. The operating system is a collection of software thatmanages, in well-known fashion, actor node 202-n's hardware resourcesand provides common services for computer programs, such as those thatconstitute the application software. The application software that isexecuted by processor 403 according to an illustrative embodimentenables actor node 202-n to perform the functions disclosed herein.Database 413 comprises information about each relevant data value, asdescribed below.

Radio communications module 405 is configured to enable actor node 202-nto telecommunicate with other devices and systems, by receiving signalstherefrom and/or transmitting signals thereto via receiver 421 andtransmitter 422, respectively. Receiver 421 and transmitter 422 can besimilar in hardware configuration to receiver 321 and transmitter 321,respectively. Radio communications module 405 communicates with mobilestation 203 and detects data packets that are transmitted by one or moreof sensor nodes 201-1 through 201-M. Radio communications module 405communicates via Bluetooth Low Energy (BLE). In some other embodiments,radio communications module 405 communicates via one or more other radiotelecommunications protocols other than or in addition to BLE such as,but not limited to, Z-Wave, ZigBee, Thread, Wi-Fi, classic Bluetooth,and so on.

FIG. 5 depicts the salient components of mobile station 203 according toan illustrative embodiment of the present invention. Mobile station 203is based on a data-processing apparatus whose hardware platformcomprises: processor 503, memory 504, and radio communications module505, interconnected as shown.

Processor 503 is a processing device, such as a microprocessor that iswell known in the art. Processor 503 is configured such that, whenoperating in conjunction with the other components of mobile station203, processor 503 executes software, processes data, andtelecommunicates according to the operations described herein. Forexample, processor 503 determines which configuration messages are to betransmitted to which sensor nodes and actor nodes, as described below.

Memory 504 is non-transitory and non-volatile computer storage memorytechnology that is well known in the art (e.g., flash memory, etc.).Memory 504 is configured to store operating system 511, applicationsoftware 512, and database 513. The operating system is a collection ofsoftware that manages, in well-known fashion, mobile station 203'shardware resources and provides common services for computer programs,such as those that constitute the application software. The applicationsoftware that is executed by processor 503 according to an illustrativeembodiment enables mobile station 203 to perform the functions disclosedherein. Database 513 comprises information about configuring each sensornode and actor node, as described below.

Radio communications module 505 is configured to enable mobile station203 to telecommunicate with other devices and systems, by receivingsignals therefrom and/or transmitting signals thereto via receiver 521and transmitter 522, respectively. For example, radio communicationsmodule 505 communicates with sensor nodes 201-1 through 201-M and actornodes 202-1 through 202-N. Radio communications module 505 communicateswith the sensor and actor nodes via Bluetooth Low Energy (BLE) andcommunicates within the cellular network in accordance with a cellularprotocol. In some other embodiments, radio communications module 505communicates via one or more other radio telecommunications protocols.

Receiver 521 is a component that enables mobile station 203 totelecommunicate with other components and systems by receiving signalsthat convey information therefrom. It will be clear to those havingordinary skill in the art how to make and use alternative embodimentsthat comprise more than one receiver 521.

Transmitter 522 is a component that enables mobile station 203 totelecommunicate with other components and systems by transmittingsignals that convey information thereto. It will be clear to thosehaving ordinary skill in the art how to make and use alternativeembodiments that comprise more than one transmitter 522.

First Scenario of Sensor Nodes and Actor Nodes:

FIG. 6 depicts an illustrative floor plan of building 600, in particulara section of a floor in the building. Building 600 is equipped withsensor nodes 601-1 through 601-9 (collectively referred to as “sensornodes 601”), actor nodes 602-1 through 602-9 (collectively referred toas “actor nodes 602”), and mobile station 603. Sensor nodes 601, actornodes 602, and mobile station 603 are non-limiting examples of sensornodes 201, actor nodes 202, and mobile station 203, respectively. Eachsensor node transmits packets containing its source address, and eachactor node detects packets and makes decisions based on the sourceaddresses in the detected packets.

Sensor nodes 601 are capable of sensing motion, from which occupancy canbe inferred. Actor nodes 602 are capable of providing illumination basedat least in part, one or more messages received from the sensor nodes.As those who are skilled in the art will appreciate, after reading thisspecification, the sensor nodes and/or actor nodes can provide differentfunctionality from that just described. In addition, different sensornodes can provide different functionality from one another, or differentactor nodes can provide different functionality from one another, orboth. Furthermore, building 600 can comprise different numbers of sensornodes and actor nodes than those depicted.

Mobile station 603 is capable of configuring sensor nodes 601 and actornodes 602, as described elsewhere in this specification. As those whoare skilled in the art will appreciate after reading this specification,however, a different device can be used to configure the sensor andactor nodes.

Building 600 as depicted is an office building. As those who are skilledin the art will appreciate after reading this specification, however,building 600 can be a different type of structure with a roof and walls,or can instead be a defined area that comprises multiple sub-areas,wherein at least a portion of the area and/or sub-areas is defined bysomething other than a roof and/or walls.

Configuring the Sensor Nodes and Actor Nodes:

Sensor nodes 601 and actor nodes 602 are configured at configurationtime, prior to entering their run-time modes. An installer, or othertype of user, uses mobile station 603 to configure the sensor and actornodes.

For example, for each and every actor node 602 in the depictedautomation system, the user wants to configure the actor node to turn onits illumination source (i.e., “turn itself on”) whenever one or moresensor nodes in the vicinity of that actor node sense motion (i.e., toinfer occupancy). The user specifies this by using an app running onmobile station 603, by associating one or more sensor nodes with eachactor node. In the example, the user configures node 602-1 to turnitself on whenever it receives a packet from nearby sensor node 601-1,601-2, or 601-4 that indicates that motion is sensed. The user alsoconfigures node 602-2 to turn itself on whenever it receives a packetfrom sensor node 601-2 that indicates that motion is sensed. Node 602-3is configured to turn itself on whenever it receives a packet fromsensor node 601-2, 601-3, or 601-6. Node 602-4 is configured to turn onits illumination source whenever it receives a packet from sensor node601-4 or 601-5. The user can similarly configure the other actor nodesto react, such that a given actor node turns on its illumination sourcebased on detecting a packet with a source address of a relativelynearby, or otherwise appropriately situated, sensor node.

Mobile station 603 is capable of detecting commands being typed by itsuser and of translating those commands into configuration information.Based on the foregoing example, mobile station 603 translates the user'scommands into messages that are sent to the actor nodes, in which thesource addresses of the specific sensor nodes identified above areprovided to the specific actor nodes with which those sensor nodes areassociated. Each source address uniquely identifies the correspondingsensor node within the address space of the one or more sensor nodes inthe example.

In some embodiments of the present invention, instead of manuallyassociating the one or more sensor nodes with each actor node, the usercan predetermine a radius around each actor node. Different radiusvalues can be administered on a per-actor-node basis or on a per-zone(e.g., room, etc.) basis, for example and without limitation. Mobilestation 603, instead of the user, can then determine which sensor nodesare within the user-defined radius from each actor node. This can beachieved, for example and without limitation, by first determining aheadof time the location of each sensor node and actor node, on afloor-by-floor basis or three-dimensionally within the entire building,based on each node's transmitted BLE beacon signal. Then, during theconfiguration process, mobile station 603 can compare each sensor node'slocation with that of each actor node to determine whether a sensor nodeis within the specified radius from the actor node. At that point, themobile station can provide the source addresses of the within-radiussensor nodes to the appropriate actor nodes.

In some other embodiments of the present invention, for one or moresensor nodes, each sensor node can be associated with a zone (e.g., aroom, a corridor, a lobby, etc.) to which the node belongs. Using atleast some of the steps described above for radius-based configuration,but applied here to zone-based configuration, an actor node can then beconfigured with rules to react to packets from a predetermined zone orzones (e.g., the same zone as the actor node, an adjacent zone to thatof the actor node, etc.), for one or more actor nodes.

In regard to the aforementioned embodiments that concern utilizing asensor node's spatial coordinates, in some alternative embodiments itcan be up to an actor node at run-time, instead of the mobile station atconfiguration time, to look up the spatial coordinates of the sensornode based on the source address contained in the packet that the actornode detects and decodes, and to execute logic to determine whether thesensor node is within the predetermined radius of the actor node basedon the retrieved spatial coordinates. Similarly, in regard to theaforementioned embodiments that concern utilizing a sensor node'sassociated zone, in some alternative embodiments it can be up to anactor node at run-time, instead of the mobile station at configurationtime, to look up the zone of the sensor node based on the source addresscontained in the packet that the actor node detects and decodes, and toexecute logic to determine whether the zone is one to which the actornode is programmed to react.

Each actor node in FIG. 6 can be easily configured for conditionallogic. For example, actor node 602-9, or a different actor node ornodes, can be configured to process an “AND” logic condition, in whichsensor node 601-8 is configured to report on motion being sensed andsensor node 601-9 is configured to report on ambient light. In supportof “daylight harvesting,” as is known in the art, actor node 602-9 canturn on, turn off, or adjust its illumination output, based on thecombination of i) motion being sensed or not being sensed, as reportedby sensor node 601-8 and ii) the ambient light level being sensed, asreported by sensor node 601-9. For example, actor node 602-9 can turnitself on based on i) sensor node 601-8 sensing motion and ii) sensornode 601-9 sensing the ambient light level being below a predeterminedlevel. In some embodiments, actor node 602-9 is further configured, suchthat it must detect the configured combination of packets from thereporting sensor nodes within a predetermined amount of time of eachother; otherwise, the actor node can (or must) discard the packet orpackets.

Still other configuration options can also be accommodated. For example,one or more sensor nodes 601 can be configured to generate an eventindicator based on a particular condition occurring. In someembodiments, the sensor nodes can be configured to transmit a packetonly if the condition is met (e.g., motion sensed, etc.).

Operations of Sensor Node 601-m: FIG. 7 depicts some salient operationsof method 700 according to an illustrative embodiment of the presentinvention, by which sensor node 601-1, which is featured here forpedagogical purposes, performs various actions.

In regard to method 700, as well as to the other methods depicted in theflowcharts and message flow diagrams contained herein, it will be clearto those having ordinary skill in the art, after reading the presentdisclosure, how to make and use alternative embodiments of the disclosedmethods in which the recited operations, sub-operations, and messagesare differently sequenced, grouped, or sub-divided—all within the scopeof the present invention. It will be further clear to those skilled inthe art, after reading the present disclosure, how to make and usealternative embodiments of the disclosed methods wherein some of thedescribed operations, sub-operations, and messages are optional, areomitted, or are performed by other elements and/or systems.

In accordance with operation 701, sensor node 601-1 is configured asdescribed above and with respect to FIG. 6. Then, the node enters arun-time mode.

In accordance with operation 703, node 601-1 receives a signal of thephysical condition being monitored, the condition in the example beingmotion.

In accordance with operation 705, node 601-1 generates an eventindication based on the received signal (i.e., based on the eventoccurring). For example, the event indication can be “motion detected”(i.e., from which occupancy can be inferred) or “motion not detected”.In some embodiments of the present invention, the event can also bebased on applicable logic.

In accordance with operation 707, node 601-1 generates a data packetcontaining the source address of node 601-1 and the event indication.Such a packet comprises a set of data elements, in which the sourceaddress, as a data element, is represented by its corresponding datavalue and the event indication, as another data element, is representedby its corresponding data value. In some embodiments, the generating ofthe packet itself signifies an indication of an event occurring; in thiscase, the inclusion of an event indication data element in the packet isoptional.

In accordance with operation 709, node 601-1 transmits the generatedpacket via a computer network (not depicted) similar to computer network204. In accordance with an illustrative embodiment of the presentinvention, node 601-1 is unaware of who the packet's recipients are and,accordingly, no identifier (e.g., network address, etc.) of any actornode, and that would uniquely identify that actor node, is present inthe generated packet. An important aspect of this is that each actornode will be monitoring not for its own identifier (e.g., networkaddress, etc.) in each transmitted packet, but for source identifiers(e.g., source network addresses, etc.) contained in the packets. In somealternative embodiments of the present invention, however, one or moreactor identifiers (e.g., destination network addresses, etc.) can bepresent in one or more of the transmitted packets.

In some embodiments of the present invention, the transmitting sensornode does not expect an acknowledgment packet from the actor node, nordoes it expect in general to be addressed by the actor node. Therefore,each transmitting sensor node might transmit the generated packet morethan once in some embodiments, in order to improve the likelihood thatthe packet is detected and acted upon by the actor node.

After operation 709, control of execution returns to operation 703.

Concurrently with sensor node 601-1 operating in accordance with theoperations described above, one or more physically distinct sensor nodes(e.g., sensor node 601-2, etc.) in addition to sensor node 601-1 canoperate in accordance with the operations described above. In this way,multiple sensor nodes can be concurrently transmitting packets via thecomputer network, and without any coordination of one other.

Operations of Actor Node 602-n: FIG. 8 depicts some salient operationsof method 800 according to an illustrative embodiment of the presentinvention, by which actor node 602-1, which is featured here forpedagogical purposes, performs various actions. In accordance withoperation 801, actor node 602-1 is configured as described above and inFIG. 6. Then, the node enters a run-time mode.

Actor node 602-1 then begins monitoring transmitted packets containingsets of data elements (e.g., tuples, etc.), in the plurality of packetsbeing transmitted by one or more sensor nodes as described with respectto FIG. 7. In accordance with operation 803 and as part of the ongoingmonitoring, node 602-1 detects a transmitted packet containing atransmitted set of data elements and, as such, is a recipient of thetransmitted packet.

In accordance with operation 805, node 602-1 determines whether thesource address contained in the packet, if a source address is present,is one to which node 602-1 is configured to react (i.e., as determinedin operation 901). If it is not one to which node 602-1 is configured toreact, control of execution proceeds to operation 807. If it is one towhich node 602-1 is configured to react, control of execution proceedsto operation 809.

In accordance with operation 807, node 602-1 discards the detectedpacket, taking no further action with the packet. Control of executionthen returns to operation 803.

In accordance with operation 809, node 602-1 acts on the detectedpacket, at least in part by generating a signal (e.g., a control signalto apply a configured control value, etc.). For example, node 602-1 inFIG. 6 generates a control signal to turn on its illumination sourcewhenever, as configured, it receives a packet from sensor node 601-1,601-2, or 601-4 that indicates that motion is sensed. Other examples ofhow node 902-3 can act on the detected packet can be found in U.S.patent application Ser. No. 14/467,407, filed Aug. 25, 2014, which isincorporated by reference herein.

Control of execution then returns to operation 803.

Concurrently with actor node 602-1 operating in accordance with theoperations described above, one or more physically distinct actor nodes(e.g., actor node 602-2, etc.) in addition to actor node 602-1 canoperate in accordance with the operations described above. Continuingwith the example above, in addition to node 602-1 turning itself onwhenever it receives a packet from sensor node 601-1, 601-2, or 601-4,node 602-2, 602-3, 602-4, and so on, can each turn themselves on inaccordance with how they were configured, as described earlier and inrespect of FIG. 6.

Multiple actor nodes can be concurrently monitoring for and detectingpackets transmitted via the computer network, from one or more sensornodes and without any coordination of each other. Notably, multipleactor nodes might act on a particular packet, based in part on thesource address and/or event indication contained in the packet beingrelevant to more than one actor node and possibly on the source addressand/or event indication having been present in previous packets.

In contrast to multiple actor nodes acting on one or more sourceaddresses, a system not making its decision based on source addresseswould be problematic in some ways. Using the sensor/actor relationshipsestablished in FIG. 6 for a hypothetical example in which actor nodes donot base decisions on source addresses, sensor node 601-4 would have totrigger actor nodes 601-2 and 602-4. This would require sensor node601-4 to keep sending multiple unicast messages to each of actor nodes601-2 and 602-4, or there would have to be multiple overlapping groupsdefined. In addition, the other sensor nodes would similarly need totrigger tho actor nodes with which the sensor nodes have a relationship.

Second Scenario of Sensor Nodes and Actor Nodes: FIGS. 9A and 9B depictan illustrative floor plan of building 900, in accordance with anillustrative embodiment of the present invention. In particular, FIG. 9Adepicts a cross-section of building 900, and FIG. 9B depicts a sectionof the middle floor of the building. Building 900 is equipped withsensor nodes 901-1 through 901-6 (collectively referred to as “sensornodes 901”), actor nodes 902-1 through 902-6 (collectively referred toas “actor nodes 902”), and mobile station 903. Sensor nodes 901, actornodes 902, and mobile station 903 are non-limiting examples of sensornodes 201, actor nodes 202, and mobile station 203, respectively. Eachsensor node transmits packets containing its source address andconfiguration information as described below, and each actor nodedetects packets and makes decisions based on both the source addressesand the configuration information in the detected packets.

Sensor nodes 901 are capable of sensing motion, from which occupancy canbe inferred. Actor nodes 902 are capable of providing illumination basedat least in part, one or more messages received from the sensor nodes.As those who are skilled in the art will appreciate, after reading thisspecification, the same variations described above and with respect toFIG. 6 are applicable to what is depicted in FIGS. 9A and 9B, includingbut not limited to the support of conditional logic (e.g., “a particularscene is applicable” AND “the ambient light level being sensed is belowa predetermined level”).

Configuring the Sensor Nodes and Actor Nodes: FIG. 10 depicts somesalient operations of method 1000 as performed by mobile station 903 andaccording to an illustrative embodiment of the present invention, bywhich one or more of sensor nodes 901-1 through 901-6 and actor nodes902-1 through 902-6 are configured. As depicted, mobile station 903, byexecuting a smartphone application, is currently being used to configurethe sensor and actor nodes on the middle floor of building 900—namely,sensor nodes 901-3 and 901-4 and actor nodes 902-3 and 902-4. As thosewho are skilled in the art will appreciate after reading thisspecification, however, mobile station 903 can be used to configure anynumber of sensor nodes and actor nodes, and in any combination.

Mobile station 903 detects commands being typed by its user, who isusing the smartphone application to configure his home automationsystem, and translates those commands into configuration information. Inaddition to including the source addresses of one or more sensor nodes,as described above and with respect to FIG. 6, the configurationinformation represents one or more “composites,” each of which issomething that is composed of separate parts. An example of a compositeis a “scene,” which is defined by a group of presets. To simplifycontrol of a group of devices in a given space (e.g., a room, etc.), itis convenient to define presets for each device (e.g., a smart lamp,etc.), associated with certain scenarios. As those who are skilled inthe art will appreciate after reading this specification, a “composite”is a generalization that can refer to a scene or to something else.

An intended effect associated with first defining and configuring, andthen engaging a composite during run-time, is that the user perceives aset of actor node devices as adjusting in unison as part of theuser-defined composite having been engaged. In accordance with anillustrative embodiment of the present invention, this occurs withoutany direct communication, in the form of actor-specific addressing, ordirect coordination, in the form of actor-specific commands, between theone or more sensor nodes involved and the one or more actor nodesinvolved. Furthermore, this effect relies on the proper informationbeing initially configured for each user-defined composite, across thesensor and actor nodes involved in each defined composite.

Additionally, the source addresses, where provided, can provideadditional control to the one or more actor nodes. For example andwithout limitation, the user can configure actor nodes 902-3 and 902-4to act on only those messages being transmitted by sensor nodes on thesame floor as the actor nodes—namely, sensor nodes 901-3 and 901-4—orsensor nodes situated within a different type of predetermined area. Itwill be clear to those skilled in the art, after reading thisspecification, how to make and use embodiments of the present inventionin which one or more source addresses are used to provide other types ofcontrol than in the foregoing example.

As discussed above and in FIG. 3, each sensor node autonomouslygenerates events based on a state change of one or more properties(e.g., ambient lighting, etc.). In order to properly translate suchevents into meaningful data values during run-time, selected events areassociated with source addresses and/or composites during theconfiguration process involving method 1000. Composites are identifiedby “composite indications,” and commands, which are identified by“command indications.” These composite indications and commandindications are stored in memory in each configured sensor node.Notably, the composite indications and command indications can bedifferent for each sensor node, depending on each particular sensornodes involvement in a particular defined composite.

As discussed above and in FIG. 4, each actor node determines whichpackets are to be processed and how each processed packet is to be used,in part based on one or more source addresses and/or other data values(e.g., composite indication, command indication, etc.) contained in eachpacket. In order to properly translate such data values into theappropriate actions during run-time, during the configuration processinvolving method 1000 the actor nodes each has a portion of memory(e.g., a set of registers, etc.) initialized, into which memory datavalues are stored. For examples of such values, refer to U.S. patentapplication Ser. No. 14/467,407, filed Aug. 25, 2014.

Referring to the specific example depicted in FIG. 10, mobile station903 is configuring the depicted sensor and actor nodes to be able tohandle four different composites: composites 1001 through 1004. Becauseeach composite will have a different effect on the environment beingcontrolled, each composite provides different source addresses and/ordata values to a different combination of sensor nodes and actor nodes.Composite 1001 requires the initialization of all nodes depicted in FIG.9B. Composite 1002 requires the initialization of both sensor nodes andactor node 902-4 only. Composite 1003 requires the initialization ofsensor node 901-3 and actor node 902-3 only. And composite 1004 requiresthe initialization of sensor node 901-3 only and both actor nodes.

As those who are skilled in the art will appreciate, after reading thisspecification, there are various implications in not having all nodesbeing initialized for all composites. As one example, sensor node 901-4will not be involved in the enabling of composites 1003 and 1004 becausethese composites do not require sensor node 901-4's involvement. Asanother example, actor nodes 902-3 and 902-4 will not be involved in theenabling of composites 1002 and 1003, respectively, because thesecomposites do not require the involvement of these actor nodes. Notably,one or more of the composite indications defined at mobile station 903might be initialized in multiple actor nodes, while one or more of thecomposite indications might be initialized in only a single actor node.

Operations of Sensor Node 901-m: FIG. 11 depicts some salient operationsof method 1100 according to an illustrative embodiment of the presentinvention, by which sensor node 901-3, which is featured here forpedagogical purposes, performs various actions. In accordance withoperation 1101, sensor node 901-3 is configured as described above andin FIG. 10. Then, the node enters a run-time mode.

In accordance with operation 1103, node 901-3 receives a signal of thephysical condition being monitored (e.g., “ambient lighting level”,etc.).

In accordance with operation 1105, node 901-3 generates an event basedon both the received signal and applicable logic.

In accordance with operation 1107, node 901-3 generates a data packetcontaining the composite indication and command indication mapped to theparticular generated event, based on the information configured inoperation 1101. The data packet also contains the source address of node901-3.

In accordance with operation 1109, node 901-3 transmits the generatedpacket via a computer network (not depicted) similar to computer network204. In accordance with an illustrative embodiment of the presentinvention, node 901-3 is unaware of who the packet's recipients are and,accordingly, no identifier (e.g., network address, etc.) of any actornode, and that would uniquely identify that actor node, is present inthe generated packet. An important aspect of this is that each actornode will be monitoring not for its own identifier (e.g., actor'snetwork address, etc.) in each transmitted packet, but for sourceidentifiers (e.g., source network addresses, etc.) contained in thepackets as well as relevant composite indications contained in thepackets. In some alternative embodiments of the present invention,however, one or more actor identifiers (e.g., destination networkaddresses, etc.) can be present in one or more of the transmittedpackets.

After operation 1109, control of execution returns to operation 1103.

Concurrently with sensor node 901-3 operating in accordance with theoperations described above, one or more physically distinct sensor nodes(e.g., sensor node 901-1, sensor node 901-4, etc.) in addition to sensornode 901-3 can operate in accordance with the operations describedabove. In this way, multiple sensor nodes can be concurrentlytransmitting packets via the computer network, and without anycoordination of each other.

Operations of Actor Node 902-n: FIG. 12 depicts some salient operationsof method 1200 according to an illustrative embodiment of the presentinvention, by which actor node 902-3, which is featured here forpedagogical purposes, performs various actions. In accordance withoperation 1201, actor node 902-3 is configured as described above and inFIG. 7. Then, the node enters a run-time mode.

Actor node 902-3 then begins monitoring transmitted packets containingsets of data elements (e.g., tuples, etc.), in the plurality of packetsbeing transmitted by one or more sensor nodes as described with respectto FIG. 11. In accordance with operation 1203 and as part of the ongoingmonitoring, node 902-3 detects a transmitted packet containing atransmitted set of data elements and, as such, is a recipient of thetransmitted packet.

In accordance with operation 1205, node 902-3 determines whether thesource address contained in the packet, if a source address is present,is one to which node 902-3 is configured to react (i.e., as determinedin operation 1201). If it is not one to which node 902-3 is configuredto react, control of execution proceeds to operation 1211. If it is oneto which node 902-3 is configured to react, control of executionproceeds to operation 1207.

In accordance with operation 1207, node 902-3 determines whether it hasalready served the packet. If it has, control of execution proceeds tooperation 1211. If not, control of execution proceeds to operation 1209.In some embodiments of the present invention, node 902-3 determineswhether it has already served the packet by examining a timestampcontained in the packet and comparing the timestamp to an internalclock, thereby checking whether it has already seen this packet within apredetermined time interval.

In accordance with operation 1209, node 902-3 determines whether thecomposite indication contained in the packet has been configured in itsmemory (i.e., as part of operation 1201). If it has not been configured,control of execution proceeds to operation 1211. If it has beenconfigured, control of execution proceeds to operation 1213.

In accordance with operation 1211, node 902-3 discards the detectedpacket, taking no further action with the packet. Control of executionthen returns to operation 1203.

In accordance with operation 1213, node 902-3 acts on the detectedpacket, at least in part by generating a signal (e.g. a control signalto apply a configured control value, etc.). Examples of how node 902-3can act on the detected packet can be found in U.S. patent applicationSer. No. 14/467,407, filed Aug. 25, 2014.

Control of execution then returns to operation 1203.

Concurrently with actor node 902-3 operating in accordance with theoperations described above, one or more physically distinct actor nodes(e.g., actor node 902-2, actor node 902-4, etc.) in addition to actornode 902-3 can operate in accordance with the operations describedabove. In this way, multiple actor nodes can be concurrently monitoringfor and detecting packets transmitted via the computer network, from oneor more sensor nodes and without any coordination of each other.Notably, multiple actor nodes might act on a particular packet, based inpart on the composite indication contained in the packet being relevantto more than one actor node and possibly on additional compositeindications having been indicated in previous packets, as well as on thesource address contained in the particular packet.

It is to be understood that the disclosure teaches just one example ofthe illustrative embodiment and that many variations of the inventioncan easily be devised by those skilled in the art after reading thisdisclosure and that the scope of the present invention is to bedetermined by the following claims.

What is claimed is:
 1. A system comprising a first actor node, the firstactor node comprising: a memory configured to store i) a first sourceaddress of a first sensor node and ii) a second source address of asecond sensor node, as configuration information for acting on the firstand second source addresses when detected in data packets; a receiverconfigured to monitor a plurality of wirelessly-transmitted data packetsfor the first and second source addresses, wherein the transmittedpackets originate at a plurality of sensor nodes that comprises thefirst and second sensor nodes; and a processor configured to generate asignal in response a detection of both i) a first packet having thefirst source address and ii) a second packet having the second sourceaddress, the signal being based on i) a first event whose occurrence isindicated by the first sensor node and ii) a second event whoseoccurrence is indicated by the second sensor node, wherein the processoris configured to generate the signal without either of the first andsecond packets addressing the first actor node.
 2. The system of claim 1wherein the processor is configured to generate the signal further basedon the first actor node detecting both the first and second packetswithin a predetermined amount of time of each other.
 3. The system ofclaim 1 wherein the processor is further configured to discard the firstpacket if the first actor node fails to detect the second packet withinthe predetermined amount of time.
 4. The system of claim 1, furthercomprising the first sensor node, wherein the first sensor node isconfigured to transmit the first packet, wherein the first sourceaddress uniquely identifies the first sensor node within an addressspace of the plurality of sensor nodes, and wherein the first sensornode is unaware of that the first actor node is a recipient of the firstpacket.
 5. The system of claim 4 wherein the first sensor node isconfigured to indicate the first event by transmitting the first packet.6. The system of claim 4 wherein the first sensor node is configured toindicate the first event by setting a particular data value in the firstpacket.
 7. The system of claim 1 wherein the first event is that ofmotion being sensed, wherein the second event is that of the ambientlight level being sensed, and wherein the signal generated controls asource of illumination.
 8. The system of claim 1 wherein the first actornode is further configured to replay at least some of the data packetsthat the first actor node receives, in accordance with a mesh network.9. A method comprising: storing into a memory, by a first actor node, i)a first source address of a first sensor node and ii) a second sourceaddress of a second sensor node, thereby configuring the first actornode, at least in part, to act on the first and second source addresseswhen detected in data packets; monitoring, by the first actor node, aplurality of wirelessly-transmitted data packets for the first andsecond source addresses, wherein the transmitted packets originate at aplurality of sensor nodes that comprises the first and second sensornodes; and if, in the plurality of transmitted packets being monitored,the first actor node detects both i) a first packet having the firstsource address and ii) a second packet having the second source address,generating a signal based on i) a first event whose occurrence isindicated by the first sensor node and ii) a second event whoseoccurrence is indicated by the second sensor node, wherein thegenerating of the signal, by the first actor node, occurs without eitherof the first and second packets addressing the first actor node.
 10. Themethod of claim 9 wherein the generating of the signal is based on thefirst actor node detecting both the first and second packets within apredetermined amount of time of each other.
 11. The method of claim 9further comprising discarding the first packet, by the first actor node,if the first actor node fails to detect the second packet within thepredetermined amount of time.
 12. The method of claim 9, furthercomprising transmitting, by the first sensor node, the first packet,wherein the first source address uniquely identifies the first sensornode within an address space of the plurality of sensor nodes, andwherein the first sensor node is unaware of that the first actor node isa recipient of the first packet.
 13. The method of claim 12 wherein thefirst sensor node indicates the first event by transmitting the firstpacket.
 14. The method of claim 12 wherein the first sensor nodeindicates the first event by setting a particular data value in thefirst packet.
 15. The method of claim 9 wherein the first event is thatof motion being sensed, wherein the second event is that of the ambientlight level being sensed, and wherein the signal generated controls asource of illumination.
 16. The method of claim 9, further comprisingreplaying, by the first actor node, at least some of the data packetsthat the first actor node receives, in accordance with a mesh network.17. A non-transitory memory storing a computer program, the computerprogram including one or more sequences of one or more instructionswhich, when executed by one or more processors, cause a first actor nodeto at least perform the following: store into a memory i) a first sourceaddress of a first sensor node and ii) a second source address of asecond sensor node, thereby configuring the first actor node, at leastin part, to act on the first and second source addresses when detectedin data packets; monitor a plurality of wirelessly-transmitted datapackets for the first and second source addresses, wherein thetransmitted packets originate at a plurality of sensor nodes thatcomprises the first and second sensor nodes; and if, in the plurality oftransmitted packets being monitored, the first actor node detects bothi) a first packet having the first source address and ii) a secondpacket having the second source address, generate a signal based on i) afirst event whose occurrence is indicated by the first sensor node andii) a second event whose occurrence is indicated by the second sensornode, wherein the generating of the signal, by the first actor node,occurs without either of the first and second packets addressing thefirst actor node.